package nus.iss.laps.dao;

import java.sql.SQLException;
import java.util.List;

import nus.iss.laps.cri.LeaveCri;
import nus.iss.laps.model.Leave;

public interface ILeaveDAO {
	
	public boolean addLeave(Leave leaves) throws SQLException ;
	public boolean updateLeave(Leave leaves) throws SQLException ;
	public boolean deleteLeave(long leaveID) throws SQLException;
	public Leave getLeave(long leaveID) throws SQLException;
	public List<Leave> getAllLeave() throws SQLException;
	public boolean updateLeaveStatus(long leaveID, byte status) throws SQLException;
	public boolean updateLeaveStatus(long leaveID, byte status, String comment) throws SQLException;
	public List<Leave> getLeavesByDate(String date, String empID) throws SQLException;
	public int getLeavesCountByDate(String date, String empID, String category) throws SQLException;
	public boolean isApprovedDate(String date, String empID) throws SQLException;
	
	public List<Leave>prepareReport(LeaveCri cri) throws SQLException;
}
